home *** CD-ROM | disk | FTP | other *** search
/ Aminet 40 / Aminet 40 (2000)(Schatztruhe)[!][Dec 2000].iso / Aminet / comm / irc / KuangEleven3Gm.lha / Kuang Eleven 3 / Rexx / kuang11.AMIRX < prev    next >
Text File  |  1998-05-23  |  18KB  |  3 lines

  1. /* $VER: kuang11.amirx 3.3 (22.5.98) Kaung Eleven 3 events handler
  2. */
  3. OPTIONS RESULTS;CLR=3;IF GETCLIP('st_init')~==1 THEN EXIT;PARSE ARG SCARGS':'PREFIX' 'TYPE' 'CHANNEL' :'TEXT;PARSE VAR PREFIX NICK'!'USER'@'HOST;IF SUBSTR(USER,1,1)=='~' THEN;DO;USER=SUBSTR(USER,2);PREFIX=NICK'!'USER'@'HOST;END;IF SCARGS~=='' THEN TYPE=SCARGS;"GETMYNICK";MYNICK=RESULT;TYPE=LOWER(TYPE);SIGNAL VALUE TYPE;EXIT;CTCP:;FNET=GETCLIP('sc_floodnet');FLP=GETCLIP('sc_floodp');IF FLP=='ON' THEN IF fcheck(HOST) THEN ignore_flood();DIV='01'X;CLR=5;PARSE UPPER VAR TEXT (DIV) COMMAND ARGS (DIV);X=GETCLIP('sc_extrctcp');IF X~=='' THEN;DO FOREVER;Z=FIND(X,COMMAND);IF Z==0 THEN LEAVE;amrx('CTCP/'WORD(GETCLIP('sc_extrscr'),Z) ':'PREFIX' PRIVMSG 'CHANNEL' :'TEXT);Y=WORDINDEX(X,Z);PARSE VAR X=Y . X;END;IF COMMAND=='' THEN EXIT;IF COMMAND=='VERSION' THEN;DO;ctcpreply(nick,GETCLIP('st_version'));EXIT;END;IF COMMAND=='SOURCE' THEN;DO;ctcpreply(nick,'Aminet:comm/tcp/KuangEleven28.lha');EXIT;END;IF COMMAND=='XDCC' THEN SIGNAL xdcc;IF GETCLIP('sc_ctcpauto')~=='ON' THEN EXIT;IF FIND('HELP INVITE UNBAN PAGE IDENT KICK WHOIS',COMMAND)==0 THEN EXIT;PARSE VAR ARGS CHANNEL NK;"CHANNELS";chans=UPPER(RESULT);SELECT;WHEN command='PAGE' THEN;DO;X=GETCLIP('sc_page');IF X=''|X='OFF' THEN EXIT;IF X='FRIENDS' THEN;DO;IF ~checklist(PREFIX,'') THEN EXIT;IF VERIFY(USERFLAGS,'bd','M')~==0 THEN EXIT;END;ctcpreply(NICK,'Paging...');"SHOW";CALL SETCLIP('st_iconIFied');CECHO('Page',BLD(NICK) 'has paged you');"PLAYSOUND Page.WAV";IF GETCLIP('sc_log')=='ON' THEN;DO;TEXT='PAGE';addawaylog();END;END;WHEN COMMAND='IDENT' THEN;DO;PR='CTCPIdent';IF GETCLIP('sc_ctcpident')~=='ON' THEN;DO;CECHO(Pr,'CTCP Ident is disabled');sht();END;X=UPPER(GETCLIP('sc_password'));SELECT;WHEN ARGS~=X|X='' THEN;DO;CECHO(PR,'Wrong password from' NICK ':' X);sht();END;WHEN checklist(PREFIX,'') THEN;DO;CECHO(PR,'User' NICK 'already recognised');ctcpreply(NICK,'I recognise you there');END;WHEN checklist('*!'USER'@*','') THEN;DO;CECHO(PR,'Authentication sucessfull from' NICK);amrx('kuang11c ADDH' nick);END;OTHERWISE;CECHO(PR,'Rejected attempt from' NICK);sht();END;END;WHEN COMMAND='HELP' THEN;DO;IF ~checklist(PREFIX,'') THEN sht();CALL SETCLIP('st_rsys',NICK);amrx('kuang11c showu' USERNICK);END;WHEN ~checklist(PREFIX,'c') THEN sht();WHEN COMMAND='WHOIS' THEN SIGNAL dowhois;WHEN ARGS='' THEN ctcpreply(NICK,'Specify channel');WHEN FIND(CHANS,CHANNEL)=0 THEN ctcpreply(NICK,'I am not on' CHANNEL);WHEN ~chanpass() THEN ctcpreply(NICK,CHANNEL 'not enabled');WHEN ~isop(MYNICK) THEN ctcpreply(NICK,'I am not op on' CHANNEL);WHEN COMMAND='UNBAN' THEN;DO;IF POS('O',USERFLAGS)=0 THEN sht();IF NK='' THEN;DO;ctcpreply(NICK,'Specify hostmask');EXIT;END;mod('-b' NK);CECHO('CTCPUnban',NICK 'removed ban' NK 'from' CHANNEL);ctcpreply(NICK,'Removed ban' BLD(NK) 'from' BLD(CHANNEL));END;WHEN command='INVITE' THEN IF POS('I',USERFLAGS)~=0 THEN 'RAW INVITE' NICK CHANNEL;ELSE sht();WHEN command='KICK' THEN;DO;IF POS('O',USERFLAGS)=0 THEN sht();SELECT;WHEN NK='' THEN ctcpreply(NICK,'SpecIFy nick');WHEN NK=MYNICK|checklist(NK'!'GETHOST(NK),'p') THEN;DO;CECHO('CTCPKick',NICK 'tried to kick protected user' NK 'on' CHANNEL);ctcpreply(NICK,NK 'is protected');END;OTHERWISE;CECHO('CTCPKick',NICK 'kicked' NK 'on' CHANNEL);kck(NK,'Requested');END;END;OTHERWISE;END;EXIT;fcheck:;DO WHILE GETCLIP('st_f')~=='';CALL DELAY(10);END;CALL SETCLIP('st_f',1);F=ARG(1);LN='st_last'TYPE;CN='st_count'TYPE;L=GETCLIP(LN);T=TIME('S');IF L='' THEN;DO;CALL SETCLIP(CN,1);CALL SETCLIP(LN,F T);CALL SETCLIP('st_f');CALL SETCLIP('st_floodnet');RETURN 0;END;P=POS(' ',L);D=T-SUBSTR(L,P+1);IF (FNET=='ON'|F==SUBSTR(L,1,P-1))&D<GETCLIP('sc_resetcount') THEN;DO;CT=GETCLIP(CN)+1;IF CT==GETCLIP('sc_sensor'TYPE) THEN;DO;CALL SETCLIP(CN);CALL SETCLIP(LN);CALL SETCLIP('st_f');IF F~==SUBSTR(L,1,P-1) THEN IF GETCLIP('st_floodnet')=='1' THEN;DO;CALL SETCLIP('st_floodnet');TYPE='FLOODNET';RETURN 1;END;ELSE;DO;CALL SETCLIP('st_floodnet',1);RETURN 0;END;RETURN 1;END;CALL SETCLIP(CN,CT);CALL SETCLIP(LN,F T);CALL SETCLIP('st_f');RETURN 0;END;CALL SETCLIP(CN);CALL SETCLIP(LN);CALL SETCLIP('st_f');CALL SETCLIP('st_floodnet');RETURN 0;ignore_flood:;amrx('handleflood :'PREFIX TYPE CHANNEL);EXIT;dccmsg:;IF GETCLIP('sc_dcclog')=='ON' THEN IF GETCLIP('sc_log')=='ON' THEN addawaylog();EXIT;privmsg:;clr=2;IF GETCLIP('sc_floodp')=='ON' THEN IF LENGTH(TEXT)>150 THEN IF fcheck(host) THEN ignore_flood();IF UPPER(SUBSTR(TEXT,1,4))=='XDCC' THEN;DO;TYPE='ctcp';PARSE UPPER VAR TEXT COMMAND ARGS;SIGNAL xdcc;END;IF GETCLIP('st_vote')~=='' THEN IF LENGTH(TEXT)<3 THEN IF POS(UPPER(TEXT),'BKS')~==0 THEN;DO;amrx('Kuang11cmd VOTETST' nick TEXT);EXIT;END;IF GETCLIP('sc_log')=='ON' THEN addawaylog();EXIT;notice:;IF GETCLIP('sc_floodp')=='ON' THEN IF LENGTH(TEXT)>150 THEN IF fcheck(HOST) THEN ignore_flood();EXIT;MODE:;IF NICK==MYNICK THEN EXIT;PARSE VAR CHANNEL CHANNEL FL NX;IF ~chanpass()|~isop(MYNICK) THEN EXIT;IF POS('!',PREFIX)==0 THEN;DO;IF GETCLIP('sc_nhp')=='ON' THEN nhpp='ON';NHP='ON';VY=0;FPROT=GETCLIP('sc_fprot');AUTOP=GETCLIP('sc_autop');SBAN=GETCLIP('sc_sban');END;ELSE;do;VY=checklist(PREFIX,'v');IF VY==0 THEN;DO;PROT=GETCLIP('sc_prot');FPROT=GETCLIP('sc_fprot');AUTOP=GETCLIP('sc_autop');SBAN=GETCLIP('sc_sban');REVENGE=GETCLIP('sc_rvg');IF REVENGE=='NONP' THEN IF ~checklist(PREFIX,'p') THEN REVENGE='ON';X=GETCLIP('sc_deop');IF X=='ON'|x=='FRIENDS' THEN;DO;IF X=='FRIENDS' THEN IF ~checklist(PREFIX,'o') THEN BREAK;X=GETCLIP('sc_deopc');IF X~=='ALL' THEN IF POS(UPPER(CHANNEL),X)==0 THEN BREAK;DOPNF='ON';END;END;END;O='+';NC=0;MF='';MN='';CLR=4;DO C=1 TO LENGTH(FL);EC=SUBSTR(FL,C,1);SELECT;WHEN EC=='-'|EC=='+' THEN O=EC;WHEN EC=='v' THEN NC=NC+1;WHEN EC=='b'|EC=='o' THEN;DO;NC=NC+1;M=O||EC;IF PROT=='ON' THEN IF fcheck(HOST||CHANNEL||M) THEN mdact();TNICK=WORD(NX,NC);SELECT;WHEN M=='-b' THEN IF VY==0 THEN IF checklist(TNICK,'b') THEN;DO;CECHO('AutoBan',TNICK 'on' CHANNEL);notic(NICK,BLD(USERHOST) 'is perm banned here.');END;WHEN M=='+b' THEN;DO;SELECT;WHEN checkipmask(MYNICK||'!'||gethost(MYNICK),TNICK) THEN;DO;IF GETCLIP('sc_saveban')=='ON' THEN;DO;mod('-bo+b' TNICK NICK '*!@'HOST);kck(NICK,'DONT ban me motherfucker!');END;ELSE mod('-b' TNICK);IF NHP=='ON' THEN CECHO('NetHack','Ban on you on' CHANNEL 'from' PREFIX);ELSE CECHO('SaveBan',NICK 'banned you on' CHANNEL);END;WHEN FPROT=='ON' THEN IF checklist(TNICK,'p') THEN;DO;MF=MF'-b';MN=MN TNICK;IF REVENGE=='ON' THEN rvgkick();USERNICK=LOWER(USERNICK);IF NHP=='ON' THEN CECHO('NetHack','Ban on' TNICK '('USERNICK') on' CHANNEL 'from' PREFIX);ELSE CECHO('Protect',NICK 'banned' TNICK '('USERNICK') on' CHANNEL);END;WHEN PROT=='ON'&SBAN=='ON' THEN IF POS('?',TNICK)~==0 THEN;DO;MF=MF'-b';MN=MN TNICK;IF REVENGE=='ON' THEN kck(NICK,'Screw YOU!');IF NHP=='ON' THEN CECHO('NetHack','ScrewBan' TNICK 'on' CHANNEL 'from' PREFIX);ELSE CECHO('ScrewBan',NICK 'banned' TNICK 'on' CHANNEL);END;OTHERWISE;END;END;WHEN M=='+o' THEN;DO;SELECT;WHEN NHPP=='ON'|DOPNF=='ON' THEN IF ~checklist(TNICK'!'GETHOST(TNICK),'o') THEN;DO;MF=MF'-o';MN=MN TNICK;CECHO('NetHack',TNICK 'on' CHANNEL);END;WHEN VY==0 THEN IF checklist(TNICK'!'GETHOST(TNICK),'d') THEN;DO;MF=MF'-o';MN=MN TNICK;CECHO('AutoDeop',TNICK 'on' CHANNEL);END;OTHERWISE;END;END;WHEN M=='-o'&AUTOP=='ON'&FPROT=='ON'&TNICK~==NICK THEN IF checklist(TNICK'!'GETHOST(TNICK),'op') THEN;DO;MF=MF'+o';MN=MN TNICK;IF REVENGE=='ON' THEN rvgkick();CECHO('Protect',NICK 'deoped' TNICK 'on' CHANNEL);END;OTHERWISE;END;END;OTHERWISE;END;END;IF MF~=='' THEN;do;SN='';TF='';DO I=1 TO LENGTH(MF) BY 2;S=SUBSTR(MF,I,1);F=SUBSTR(MF,I+1,1);IF S~==SN THEN;DO;TF=TF||S;SN=S;END;TF=TF||F;END;MOD(TF MN);END;EXIT;gethost:;"USERHOST" ARG(1);RETURN RESULT;chanpass:;ACHAN=GETCLIP('sc_autochannels');IF ACHAN=='ALL' THEN RETURN 1;IF FIND(ACHAN,UPPER(CHANNEL))~==0 THEN RETURN 1;RETURN 0;isop:;IF FIND(getusers(CHANNEL),'@'ARG(1))~==0 THEN RETURN 1;RETURN 0;getusers:PROCEDURE;"GETUSERS CHANNEL" ARG(1);RETURN RESULT;join:;IF NICK==MYNICK THEN EXIT;CHANNEL=SUBSTR(CHANNEL,2);IF ~chanpass() THEN EXIT;X=GETCLIP('nuke');IF X~=='' THEN;DO;CECHO('WinNuke','Nuking' NICK '[' HOST ']');ADDRESS COMMAND X HOST;END;IF ~isop(MYNICK) THEN EXIT;CLR=3;MYHOST=gethost(MYNICK);MYHOST=SUBSTR(MYHOST,POS('@',MYHOST)+1);IF GETCLIP('sc_prot')=='ON'&GETCLIP('sc_mjoin')=='ON'&HOST~==MYHOST THEN IF fcheck(CHANNEL||HOST) THEN;DO;IF checklist(PREFIX,'v') THEN EXIT;ignore_flood();END;IF GETCLIP('sc_autop')=='ON' THEN;DO;X=GETCLIP('sc_autopf');IF X='' THEN X='o';IF checklist(PREFIX,X) THEN;DO;X=GETCLIP('sc_autopdel');IF X~==''&X~=='0' THEN;DO;IF GETCLIP('sc_randel')=='ON' THEN X=RANDOM(1,X,TIME('S'));CALL DELAY(X*50);IF isop(NICK) THEN EXIT;END;mod('+o' NICK);CECHO('AutoOp',NICK 'on' CHANNEL);EXIT;END;END;IF checklist(PREFIX,'b') THEN;DO;mod('+b *!*'LOWER(USERHOST));kck(NICK,'Banned');CECHO('AutoBan',NICK 'on' CHANNEL);EXIT;END;IF checklist(PREFIX,'e') THEN;DO;mod('+v' NICK);CECHO('AutoVoice',NICK 'on' CHANNEL);END;EXIT;kick:;IF nick==MYNICK THEN EXIT;IF GETCLIP('sc_fprot')~=='ON' THEN EXIT;PARSE VAR CHANNEL CHANNEL NK .;IF ~chanpass()|~isop(MYNICK)|NK==NICK THEN EXIT;IF checklist(PREFIX,'v') THEN EXIT;CLR=4;IF GETCLIP('sc_prot')=='ON'&GETCLIP('sc_mkick')=='ON' THEN IF fcheck(HOST||CHANNEL) THEN;DO;mdact();EXIT;END;RVG=GETCLIP('sc_rvg');IF RVG=='NONP' THEN;DO;IF checklist(PREFIX,'p') THEN EXIT;RVG='ON';END;IF RVG=='ON' THEN IF checklist(NK'!'GETHOST(NK),'p') THEN;DO;rvgkick();CECHO('Protect',NICK 'kicked' NK 'on' CHANNEL);END;EXIT;hilite:;CLR=1;IF GETCLIP('sc_asound')=='ON' THEN IF UPPER(LEFT(TEXT,LENGTH(MYNICK)+1))=='!'UPPER(MYNICK)&WORDS(TEXT)>1 THEN;DO;F=WORD(TEXT,2);IF VERIFY(F,'/:`"*#?','M')==0 THEN;DO;"GETCTCPSOUNDDIR";DF=PRSPRG(RESULT)||F;PR='SoundSend';IF EXISTS(DF) THEN 'SAY /DCC SEND' NICK DF;END;COMPR=1;END;C=GETCLIP('sc_comprefix');IF C~=='' THEN IF SUBSTR(TEXT,1,LENGTH(C))==C THEN;DO;IF checklist(PREFIX,'') THEN PXFN=USERFLAGS;ELSE PXFN='-';PARSE UPPER VAR TEXT (C) COMMAND T .;IF T='' THEN USERFLAGS='-';ELSE IF ~checklist(T'!'GETHOST(T),'') THEN USERFLAGS='-';X=GETCLIP('sc_pubcmd');IF X~=='' THEN;DO FOREVER;Z=FIND(X,COMMAND);IF z==0 THEN LEAVE;amrx('pub/'WORD(GETCLIP('sc_pubscr'),Z) NICK CHANNEL PXFN USERFLAGS isop(MYNICK) chanpass() SUBSTR(TEXT,2));Y=WORDINDEX(X,Z);PARSE VAR X=Y . X;END;COMPR=1;END;IF GETCLIP('sc_shit')=='ON' THEN;DO;T=UPPER(TEXT);S=GETCLIP('sc_swords');DO UNTIL S='';PARSE VAR S W S;IF POS(W,T)~=0 THEN;DO;IF ~chanpass()|~isop(MYNICK) THEN EXIT;IF checklist(PREFIX,'v') THEN EXIT;IF GETCLIP('sc_bankickwords')=='ON' THEN;DO;X=GETCLIP('st_lastword');PARSE VAR X N T .;IF X==''|N~=NICK THEN T=0;T=T+1;M=GETCLIP('sc_maxword');IF M='' THEN M=3;IF T=M THEN;DO;mod('+b *!*@'host);T=0;END;ELSE IF T=M-1 THEN notic(NICK,'The next time you say' W 'will be ban time!');CALL SETCLIP('st_lastword',NICK T);END;kck(NICK,'WordKick');CECHO('WordKick',nick 'said' W);COMPR=1;END;END;END;X=GETCLIP('st_skick');IF X~=='' THEN IF UPPER(NICK)==X THEN;DO;IF ~isop(MYNICK) THEN EXIT;T=GETCLIP('st_skickt');IF T='' THEN T=0;T=T+1;IF T=4 THEN;DO;mod('+b *!*@'HOST);T='';END;ELSE IF T=3 THEN notic(NICK,"Final warning!I'll ban you next time!");kck(NICK,'I told you _NOT_ to speak!');CALL SETCLIP('st_skickt',T);COMPR=1;END;IF GETCLIP('sc_hlog')=='ON'&COMPR~='1' THEN;DO;TEXT=TEXT'(HILITE)';addawaylog();END;EXIT;dcc:;IF fcheck(HOST) THEN ignore_flood();DIV=X2C('01');A=GETCLIP('sc_autoget');CLR=5;PARSE VAR TEXT (DIV) . C F DAT (DIV);SELECT;WHEN C='RESUME'|C='ACCEPT' THEN;DO;PARSE VAR DAT P S .;IF (F='You'&P='already'&S='have')|(F='No'&P='such'&S='session!') THEN EXIT;IF ~DATATYPE(S,'W')|~DATATYPE(P,'W')|VERIFY(F,'/:`"*#?','M')~=0 THEN ignore_flood();IF P<1024|S<0 THEN ignore_flood();END;WHEN C='CHAT' THEN;DO;PARSE VAR DAT I P .;IF F~=='chat'|~DATATYPE(P,'W')|~DATATYPE(I,'N') THEN ignore_flood();IF P<1024|I<100000000 THEN IGNORE_FLOOD();"GETAWAYSTATE";IF RC==5 THEN;DO;IF GETCLIP('sc_log')~=='ON' THEN EXIT;TEXT='DCCCHAT';addawaylog();END;SELECT;WHEN A='ON'|A='FRIENDS' THEN IF ~checklist(PREFIX,'a') THEN EXIT;WHEN A='ALLFRIENDS' THEN IF ~checklist(PREFIX,'') THEN EXIT;WHEN A~='ALL' THEN EXIT;OTHERWISE;END;'SAY /DCC CHAT' NICK;IF GETCLIP('sc_query')='ON' THEN 'SAY /QUERY' NICK;CECHO('AutoGet','Accepting chat from' NICK);ply('AUTOGET');END;WHEN C='TSEND'|C='SEND'|C='MOVE' THEN;DO;PARSE VAR DAT I P S .;IF C='MOVE' THEN F=SUBSTR(F,2,LENGTH(F)-2);IF VERIFY(F,'/:`"*#?','M')~=0|~DATATYPE(S,'W')|~DATATYPE(P,'W')|~DATATYPE(I,'N') THEN ignore_flood();IF P<1024|I<100000000|S<0 THEN ignore_flood();PR='AutoGet';UF=UPPER(F);X=GETCLIP('st_autoget');GETREASON='';RESUME=1;XDCCNICK=COMPRESS(NICK,'/\:`"*#?');SELECT;WHEN FIND(X,UF)~=0 THEN GETREASON=' (on temporary file autoget)';WHEN FIND(X,':'UPPER(NICK))~=0 THEN GETREASON=' (on temporary nick autoget)';WHEN (F=XDCCNICK'_XDCClist.xdc'|F=XDCCNICK'_XDCClistReg.xdc')&S<5000 THEN;DO;GETREASON=' (XDCC server file list)';RESUME=0;END;WHEN A='ON'|A='FRIENDS' THEN IF ~checklist(PREFIX,'a') THEN EXIT;WHEN A='ALLFRIENDS' THEN IF ~checklist(PREFIX,'') THEN EXIT;WHEN A~='ALL' THEN EXIT;OTHERWISE;END;"GETDCC";IF DCC.RECEIVE.0>0 THEN;DO I=1 TO DCC.RECEIVE.0;PARSE VALUE DCC.RECEIVE.I WITH MNICK MOVEFLAG HOSTNAME STATE LEN CPS MFILENAME;MFILENAME=FILEPART(MFILENAME);IF UPPER(MFILENAME)=UF&(STATE=1|STATE=2) THEN;DO;CECHO(PR,'Already receiving' MFILENAME 'from' MNICK);EXIT;END;END;"GETDCCRECEIVEDIR";CF=PRSPRG(RESULT)||F;COM='GET';IF EXISTS(CF)&RESUME THEN;DO;L=WORD(STATEF(CF),2);IF L=S THEN;DO;CECHO(PR,'File already exists and is same size!');EXIT;END;IF C='SEND'&L<S THEN COM='RESUME';END;'SAY /DCC' COM NICK F;CECHO(PR,'Accepting' F 'from' NICK||GETREASON);ply('AUTOGET');END;OTHERWISE;END;EXIT;invite:;IF GETCLIP('sc_floodp')=='ON' THEN;DO;IF fcheck(HOST) THEN ignore_flood();FLD=' in 15 seconds.';END;ELSE FLD='';X=GETCLIP('sc_autojoin');IF X==''|X=='OFF' THEN EXIT;IF X=='FRIENDS' THEN IF ~checklist(PREFIX,'i') THEN EXIT;CECHO('AutoJoin','Joining' TEXT||FLD);IF FLD~=='' THEN;DO;CALL DELAY(750);IF GETCLIP('st_lastig')=HOST THEN EXIT;END;'RAW JOIN' TEXT;EXIT;xdcc:;IF LEFT(CHANNEL,1)~=='#' THEN CHANNEL=getchan();ELSE IF GETCLIP('sc_xdcc_masskick')=='ON' THEN;DO;IF isop(MYNICK) THEN;DO;IF GETCLIP('sc_xdcc_massban')=='ON' THEN mod('+b *!*@'HOST);kck(NICK,'Mass XDCC LIST');END;CECHO('MassXDCC',NICK 'on' CHANNEL);EXIT;END;IF GETCLIP('sc_xdcc')~=='ON' THEN;DO;NOTIC(NICK,'XDCC IS DISABLED.');IF GETCLIP('sc_xdcckick')=='ON' THEN IF ~checklist(PREFIX,'') THEN kck(NICK,'Was I offering?');EXIT;END;SEC=GETCLIP('sc_xdccsec');PSEC=1;IF SEC=='OPS' THEN PSEC=isop(NICK);ELSE IF SEC=='PACKS'|SEC=='ALL' THEN PSEC=checklist(PREFIX,'x');PARSE UPPER VAR ARGS C S .;IF C='' THEN C='HELP';IF C~=='LIST'&S~='' THEN S=S ISOP(MYNICK);IF C='LIST'&S='' THEN S='#' ISOP(MYNICK);amrx('KUANG11XDCC' PSEC TYPE C NICK S);EXIT;CECHO:;"ECHO P="D2C(27)"B«"ARG(1)"» C="CLR ARG(2);RETURN 0;VECHO:;"ECHO P="D2C(27)"b«Kuang11» C="CLR UND(ARG(1)||':') ARG(2)'.';RETURN 0;notic:;'QueueRAW NOTICE' ARG(1) ':'ARG(2);RETURN 0;rvgkick:;IF GETCLIP('sc_rvgd')=='ON' THEN mod('-o' NICK);IF GETCLIP('sc_rvgb')=='ON' THEN mod('+b *!*@'HOST);IF GETCLIP('sc_rvgk')=='ON' THEN;DO;KMSG=GETCLIP('sc_pkickmsg');P=POS('%N',UPPER(MSG));IF P~=0 THEN KMSG=INSERT(USERNICK,DELSTR(KMSG,P,2),P-1);KCK(NICK,KMSG);END;RETURN 0;ply:;IF GETCLIP('sc_playsounds')~=='ON' THEN RETURN 0;'PLAYSOUND _K11'ARG(1)'.snd';RETURN 0;kck:;'RAW KICK' CHANNEL ARG(1) ':'ARG(2);RETURN 0;mod:;'RAW MODE' CHANNEL ARG(1);RETURN 0;getchan:;"GETCHANNEL";RETURN RESULT;ctcpreply:;'QueueRAW NOTICE' ARG(1) ':'DIV||COMMAND ARG(2)DIV;RETURN 0;sht:;ctcpreply(NICK,'Access denied');EXIT;amrx:;'SAY /RX' ARG(1);RETURN 0;prsprg:PROCEDURE;X=addpart(ARG(1),'');"GETPROGDIR";Y=RESULT;IF UPPER(LEFT(X,8))='PROGDIR:' THEN RETURN addpart(Y,'')||SUBSTR(X,9);RETURN X;addawaylog:;"GETAWAYSTATE";IF RC~==5 THEN EXIT;FN='Kuang11/AwayLog';IF EXISTS(FN) THEN S='A';ELSE S='W';OPEN(1,FN,S);WRITELN(1,NICK TIME() TEXT);CLOSE(1);X=GETCLIP('st_awaymsgs');IF X=='' THEN X=0;CALL SETCLIP('st_awaymsgs',X+1);IF GETCLIP('sc_aicon')=='ON' THEN "HIDE";IF TYPE=='hilite' THEN EXIT;STIME=GETCLIP('st_awayt');IF STIME='' THEN;DO;STIME=DATE('I') TIME('S');CALL SETCLIP('st_awayt',STIME);END;PARSE VAR STIME SDATE STIME .;TOTAL=TRUNC((TIME('S')+DATE('I')*86400-STIME-SDATE*86400)/60);HRS=TRUNC(TOTAL/60);MNS=TOTAL-HRS*60;IF HRS=0 THEN HRS='';ELSE IF HRS=1 THEN HRS='1 hour,';ELSE HRS=HRS 'hours,';STR=HRS||MNS 'minutes';notic(NICK,"I've been away for "STR'. Your message has been logged.');EXIT;mdeop:;PR='NFDeop';CHANNEL=getchan();MD='';NXT=getusers(CHANNEL);CECHO(pr,'Checking ops on' CHANNEL);DO UNTIL NXT='';PARSE VAR NXT NK NXT;NKO=STRIP(NK,'L','@+');IF LEFT(NK,1)='@'&NKO~==MYNICK&~checklist(NKO'!'GETHOST(NKO),'o') THEN MD='o'MD NKO;END;IF MD~='' THEN;DO;mod('-'MD);CECHO(PR,'Executed on' CHANNEL);END;ELSE CECHO(pr,'Noone to deop');EXIT;mdact:;MASS='';SELECT;WHEN TYPE=='kick' THEN MASS='Kick';WHEN M=='-o' THEN IF GETCLIP('sc_mdeop')=='ON' THEN MASS='Deop';WHEN M=='+o' THEN IF GETCLIP('sc_mop')=='ON' THEN MASS='Op';WHEN M=='-b' THEN IF GETCLIP('sc_muban')=='ON' THEN MASS='UnBan';OTHERWISE;IF GETCLIP('sc_mban')=='ON' THEN MASS='Ban';END;IF MASS~=='' THEN;DO;mod('-o+b' NICK '*!*@'HOST);kck(nick,'Mass'MASS 'detected.Go sit in a corner');amrx('TIMER 30 /NICK' mynick);'raw NICK _'random(1,999,time('S'))*1111;CECHO('Mass'MASS,BLD(NICK) 'on' BLD(CHANNEL)'.Retaliating and changing nick briefly.');PROT='';MASS='';END;RETURN 0;whois:;ARGS=PREFIX;DOWHOIS:;USERFLAGS='';PR='CheckUser';IF POS('!',ARGS)=0 THEN IF POS('@',ARGS)~=0 THEN PREFIX='*!'ARGS;ELSE PREFIX=ARGS'!'GETHOST(ARGS);SELECT;WHEN ARGS='' THEN;DO;IF TYPE='ctcp' THEN ctcpreply(NICK,'Specify user/hostmask');ELSE CECHO(PR,'Specify user/hostmask');EXIT;END;WHEN checklist(PREFIX,'') THEN ARGS='showu' USERNICK;OTHERWISE;L=BLD(ARGS) ': unknown nick/hostmask.';IF TYPE='ctcp' THEN ctcpreply(NICK,L);ELSE CECHO(PR,L);EXIT;END;IF TYPE='ctcp' THEN CALL SETCLIP('st_rsys',NICK);amrx('kuang11c' ARGS);EXIT